在自己的机械臂上配置Moveit,实现rviz与gazebo联调 | 您所在的位置:网站首页 › ros service 控制gazebo › 在自己的机械臂上配置Moveit,实现rviz与gazebo联调 |
一、引言
此文续上节Solidworks导出URDF模型系统版本与ROS版本:Ubuntu18.04、Melodic内容:(1)Setup Assistant配置自己的机械臂的URDF模型 (2)实现机械臂在rviz与gazebo之中的联调仿真,即通过调节rviz参数可以使rviz与gazebo中的机械臂一起动本文主要用KUKA机械臂模型(当然是项目需要啦)目前还没有给它夹爪,所以暂时不管抓取的部分,先能控制机械臂动还是费了一番心血害,写个详细点的配置过程,让做毕设的小伙子们舒服点~~(吐槽一下,这方面教程太少了,找到的很多教程讲的好像没那么小白,算是误打误撞+站在各位大佬的基础上弄出来的)
二、使用Setup Assistant配置机械臂
(1)下载机械臂模型 git clone https://github.com/ros-industrial/kuka_experimental.git下载后可以把整个包放到工作空间下进行编译~~(这个大家应该都会吧就不详细说了) (3)Setup Assistant配置机械臂 首先需要启动MoveIt Setup Assistant roslaunch moveit_setup_assistant setup_assistant.launch第一步->Start:创建新的 MoveIt 配置包或编辑现有的 MoveIt 配置包~~ 因为是第一次配置,所以我们选择创建新的Moveit配置包(Create New MoveIt Configuration Package),如果是已经有用MoveIt Setup Assistant配置好的包可以选择编辑已有配置包(Edit Existing Moveit Configuration Package) 点击Browse,选中机械臂的URDF文件(如图箭头所示) 点击Load Files,可以看到右侧已经成功加载机械臂模型了 第二步->Self-Collision Matrix:生成自碰撞矩阵~~ 这一步没啥,就不介绍是个啥了,看名字就那个意思,直接根据默认的来~~ 点击Generate Collision Matrix 第三步->Virtual Joint:虚拟关节~~ 就是为了保证机械臂在gazebo环境里面被固定在原地不会乱飞(话是这么说,但是我配置了反正一点用都没,不如自己后面在URDF里面添加一个fixed关节把base_link和world固定死) 这一步直接跳过好啦,后面我们手动配置~ 第四步->Planning Groups:添加规划组~~ 点击Add Group 其中Group name为arm,Kinematic Solver(运动学求解器)选kdl_kinematics_plugin/KDLKinematicsPlugin,OMPL Planning为RRT,其他默认~ 点击Add Joints,将所有属于机械臂arm组的Joint添加到右侧,如果有夹爪需要创建一个gripper组,当然组的名字可以自定义的 点击save 第五步->Robot Poses:机器人位姿~~ 点击Add Poses 可以根据自己需要任意移动机械臂的姿态然后他会保存下来机械臂的位姿,后面可以在rviz里面直接根据该姿态的名称移动机械臂,可以添加好几个姿态,这里我就只创建一个home姿态啦 点击Save 第六步->End Effectors:标记末端执行器~~ 这一步因为没有机械手,所以先跳过,后续博客如果添加了机械手就再更新 第七步->Passive Joints:被动关节~~ 这个配置也可以跳过,基本用不到 第八步->ROS Control:ROS控制~~ 这部分必须有,而且很重要,如果没有这部分的话后续会报错 点击 Add Controller Controller Name为 arm_position_controller,控制器类型为position_controllers/JointTrajectoryController 点击Add Planning Group Joints 将arm组添加到右边 点击Save 第九步->Simulation:仿真~~ 点击Generate URDF 第十步->3D Preception:3D感知~~ 这一步跳过,咱没有要添加摄像头 第十一步->Author information:作者信息~~ 就输入姓名和邮箱就可以了 第十二步->Configuration Files:配置信息~~ 这一步就是保存功能包,需要我们预先在工作空间src下面创建一个空文件夹,名字自己取,然后点击Generation Package就可以了 以上我们完成了功能包的生成,下面我们进行一些参数的修改以及配置,使我们的机械臂可以在rviz与gazebo中能够同时工作~ 3.1 配置urdf文件我们在之前的操作中获取了一个test.urdf文件,我们先把他放到~/catkin_ws/src/kuka_kr16_support/urdf文件夹下 (2)hardware_interface/PositionJointInterface这部分要注意里面的得是hardware_interface/PositionJointInterface,总之不一样的替换掉就行 (3)joint里面的effort参数不能设置为0,我这里设置的是50,0的话代表最大的力的0.。。。肯定不行,后面仿真会报错 urdf部分主要就是这三个问题,我附一下我修改后的test.urdf文件供大家参考: transmission_interface/SimpleTransmission hardware_interface/PositionJointInterface hardware_interface/PositionJointInterface 1 transmission_interface/SimpleTransmission hardware_interface/PositionJointInterface hardware_interface/PositionJointInterface 1 transmission_interface/SimpleTransmission hardware_interface/PositionJointInterface hardware_interface/PositionJointInterface 1 transmission_interface/SimpleTransmission hardware_interface/PositionJointInterface hardware_interface/PositionJointInterface 1 transmission_interface/SimpleTransmission hardware_interface/PositionJointInterface hardware_interface/PositionJointInterface 1 transmission_interface/SimpleTransmission hardware_interface/PositionJointInterface hardware_interface/PositionJointInterface 1 / 3.2 配置kuka_kr16_support功能包中的文件(1)trajectory_execution.launch.xml文件 将这一行注释掉 具体的关节名根据自己的需要进行修改,然后一定要注意name别弄错了,要不然gazeb中机械臂也一样不会动 该文件中还有一个部分是设置pid的如下:(这一个配置不想看可以直接跳过,不影响) 但是可能会有问题,就是要调参,要不然机械臂会来回摆动,所以最好就干脆忽略算了 四、运行与效果展示运行前不要忘记catkin_make工作空间 roslaunch kuka_moveit_config demo_gazebo.launch通过此指令可启动gazebo与rviz的仿真,基本上如果跟着我前面的配置过程基本把网上的所有BUG都解决掉了,除非就是可能缺一些依赖包这样子~ 启动以后rviz界面与gazebo界面如图,机械臂处于一个初始状态 注意:如果遇到了机械臂抖动或者散乱的情况,需要调节joint的effort和link的质量大小 以上步骤就是配置自己机械臂的全过程,至少能够保证机械臂可以通过moveit控制,为后面的编程做好了铺垫,后续添加夹爪还有代码的测试也会同步到博客中~,如果能帮助到大家,记得点个赞2333 五、参考文献[1] https://zhuanlan.zhihu.com/p/63172502 [2] https://www.guyuehome.com/34986 [3] https://zhuanlan.zhihu.com/p/449835834 [4] https://github.com/ros-industrial/kuka_experimental/tree/melodic-devel [5] https://www.zhihu.com/question/411825705/answer/1587970053 [6] https://blog.csdn.net/qq_37266917/article/details/104959071 |
CopyRight 2018-2019 实验室设备网 版权所有 |